package la.iok.hzsvn.lewin.movie.obs;

import java.util.Date;

public interface Expirable {
    /**
     * 是否接近过期
     * @return true表示接近过期,false表示还未接近过期。如果已经过期也返回true
     */
    default boolean nearExpire(){
        long now = System.currentTimeMillis();
        Date d = expireAt();
        return d != null && d.getTime() - now <= 10*60*1000;
    }

    /**
     * 是否已经过期
     * @return true表示已经过期,false未过期
     */
    default boolean expired(){
        Date d = expireAt();
        long now = System.currentTimeMillis();
        return d != null && d.getTime() - now <= 10*1000;
    }

    /**
     * 过期时间
     * @return 过期时间
     */
    Date expireAt();
}
